package cn.edu.xhu.library_management.department.service;

import cn.edu.xhu.library_management.department.entity.LmMajor;
import cn.edu.xhu.library_management.department.entity.search.SearchFaculty;
import cn.edu.xhu.library_management.department.entity.search.SearchMajor;

import java.util.List;
import java.util.Map;

/**
 * @Author: MMJ
 * @Date: 2022-01-29
 * @Description: 专业service接口类
 */
public interface MajorService {
    /**
     * 添加专业
     * @param major 专业实体对象
     * @return true 成功 false 失败
     */
    public boolean addMajor(LmMajor major);

    /**
     * 修改专业(专业ID)
     * @param major 专业实体对象
     * @return true 成功 false失败
     */
    public boolean updateMajor(LmMajor major);

    /**
     * 删除专业(专业ID)
     * @param maId 专业ID
     * @return true 成功 false 失败
     */
    public boolean deleteMajorById(Integer maId);

    /**
     * 批量删除专业
     * @param maIds 专业ID集合
     * @return true 成功 false 失败
     */
    public boolean deleteMajorByIds(List<Integer> maIds);

    /**
     * 查找所有的专业
     * @return 专业对象集合
     */
    public List<LmMajor> findAllMajor();

    /**
     * 通过院系ID查找对应的专业
     * @param faId 院系ID
     * @return 专业对象集合
     */
    public List<LmMajor> findMajorsByDepartment(Integer faId);

    /**
     * 通过专业ID查找专业
     * @param maId 专业ID
     * @return 专业对象
     */
    public LmMajor findMajorById(Integer maId);

    /**
     * 专业搜索(带分页)
     * @param searchMajor 专业搜索对象
     * @return
     */
    public Map<String, Object> search(SearchMajor searchMajor);
}
